//
//  NSDate+Extension.swift
//  Date
//
//  Created by 熊涛 on 16/5/23.
//  Copyright © 2016年 熊涛. All rights reserved.
//

import UIKit

extension NSDate {



    class func date(creat_at : String) -> NSDate {


        let df = NSDateFormatter()
        //指定区域 真机上 必须要写
        df.locale = NSLocale(localeIdentifier: "en")
        
        df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        
        let date = df.dateFromString(creat_at) ?? NSDate()
//        print("date : \(date)")
        
        return date
        
    }
    
    
    
    ///  返回日期描述字符串
    ///
    ///     格式如下
    ///     -   刚刚(一分钟内)
    ///     -   X分钟前(一小时内)
    ///     -   X小时前(当天)
    ///     -   昨天 HH:mm(昨天)
    ///     -   MM-dd HH:mm(一年内)
    ///     -   yyyy-MM-dd HH:mm(更早期)
    
    
    func sinaDateDscription() -> String {
    
        let df = NSDateFormatter()
        
        //获取当前日历
        let cal = NSCalendar.currentCalendar()
        
        //判断日期
        if cal.isDateInToday(self) {
            //如果是今天,再进行判断,
            //将self和当前时间相比 看相差多少秒
            let delta = Int(NSDate().timeIntervalSinceDate(self))
            
            //判断
            if delta < 60 {
                return "刚刚"
            }else if delta < 60 * 60 {
                //一小时内
                return ("\(delta / 60)分钟前")
            }else {
                //几小时前
                return ("\(delta / (60 * 60))小时前")
            }
        }
        
        var formatter = ""
        if cal.isDateInYesterday(self) {
            print("昨天")
            formatter = "昨天 HH:mm"
            
        }else {
        
            //判断是否是同一年
            let result = cal.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year)
            if result == NSComparisonResult.OrderedSame {
                print("一年内")
                formatter = "MM-dd HH:mm"
            }else {
                print("更早期")
                formatter = "yyyy-MM-dd HH:mm"
            }
        }
        
        df.dateFormat = formatter
        
        df.locale = NSLocale(localeIdentifier: "en")
        
       let str = df.stringFromDate(self)
        return str
        
    }


}
